package com.lanchetech.entity;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 佣金发放记录
 */
@ApiModel(value = "com-lanchetech-entity-UserCommission")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class UserCommission implements Serializable {
    /**
     * id
     */
    @ApiModelProperty(value = "id")
    private Long id;

    /**
     * 上级用户id
     */
    @ApiModelProperty(value = "上级用户id")
    private Long superiorId;

    /**
     * 下级用户id
     */
    @ApiModelProperty(value = "下级用户id")
    private Long subordinateId;

    /**
     * 订单商品明细id
     */
    @ApiModelProperty(value = "订单商品明细id")
    private Long orderSkuId;

    /**
     * 佣金总额
     */
    @ApiModelProperty(value = "佣金总额")
    private BigDecimal commission;

    /**
     * 消费备注
     */
    @ApiModelProperty(value = "消费备注")
    private String remark;

    /**
     * 关联编号
     */
    @ApiModelProperty(value = "关联编号")
    private Long relateId;

    /**
     * 类型 0 商品佣金 1 消费佣金
     */
    @ApiModelProperty(value = "类型 0 商品佣金 1 消费佣金")
    private Byte type;

    /**
     * 佣金冻结结束时间
     */
    @ApiModelProperty(value = "佣金冻结结束时间")
    private Date freezeTime;

    /**
     * 状态 0 冻结中 1 已发放 2 因退款扣除 3 管理员扣除
     */
    @ApiModelProperty(value = "状态 0 冻结中 1 已发放 2 因退款扣除 3 管理员扣除")
    private Byte status;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    private Date createdAt;

    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间")
    private Date updatedAt;

    /**
     * 业绩
     */
    @ApiModelProperty(value = "业绩")
    private BigDecimal amount;

    /**
     * 身份类型 0 超级会员 1 合伙人 2 联创
     */
    @ApiModelProperty(value = "身份类型 0 超级会员 1 合伙人 2 联创")
    private Byte identityType;

    /**
     * 用户商家厂家类型 0 用户 1 商家 2 厂家
     */
    @ApiModelProperty(value = "用户商家厂家类型 0 用户 1 商家 2 厂家")
    private Byte businessType;

    /**
     * 商家编号
     */
    @ApiModelProperty(value = "商家编号")
    private Long shopId;

    /**
     * 讲师身份，默认为null
     */
    @ApiModelProperty(value = "讲师身份，默认为null")
    private Byte teacherLevel;

    /**
     * 佣金来源类型 null 为没有，其他的，则显示相应的来源类型 0 会员 1 合伙人 2 运营中心
     */
    @ApiModelProperty(value = "佣金来源类型 null 为没有，其他的，则显示相应的来源类型 0 会员 1 合伙人 2 运营中心")
    private Byte fromType;

    private static final long serialVersionUID = 1L;
}